home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #3 / Amiga Plus CD - 2002 - No. 03.iso / AmiSoft / Dev / Gui / Cit.lha / CIT / citra / CITListBrowser.h < prev    next >
Encoding:
C/C++ Source or Header  |  2003-02-13  |  7.4 KB  |  201 lines

  1. //
  2. //                    CITListBrowser include
  3. //
  4. //                          StormC
  5. //
  6. //                     version 2003.02.12
  7. //
  8.  
  9. #ifndef CITLISTBROWSER_H
  10. #define CITLISTBROWSER_H TRUE
  11.  
  12. #include "CITGadget.h"
  13.  
  14. #include <gadgets/listbrowser.h>
  15.  
  16. //
  17. // This enum is for internal use only
  18. //
  19. enum
  20. {
  21.   CITLISTBROWSER_LABELS = 0,
  22.   CITLISTBROWSER_TOP,
  23.   CITLISTBROWSER_MAKEVISIBLE,
  24.   CITLISTBROWSER_SPACING,
  25.   CITLISTBROWSER_SELECTED,
  26.   CITLISTBROWSER_MULTISELECT,
  27.   CITLISTBROWSER_SHOWSELECTED,
  28.   CITLISTBROWSER_VERTSEPARATORS,
  29.   CITLISTBROWSER_HORIZSEPARATORS,
  30.   CITLISTBROWSER_BORDERLESS,
  31.   CITLISTBROWSER_COLUMNINFO,
  32.   CITLISTBROWSER_COLUMNTITLES,
  33.   CITLISTBROWSER_AUTOFIT,
  34.   CITLISTBROWSER_VIRTUALWIDTH,
  35.   CITLISTBROWSER_LEFT,
  36.   CITLISTBROWSER_VERTICALPROP,
  37.   CITLISTBROWSER_HORIZONTALPROP,
  38.   CITLISTBROWSER_VPROPTOTAL,
  39.   CITLISTBROWSER_VPROPTOP,
  40.   CITLISTBROWSER_VPROPVISIBLE,
  41.   CITLISTBROWSER_HPROPTOTAL,
  42.   CITLISTBROWSER_HPROPTOP,
  43.   CITLISTBROWSER_HPROPVISIBLE,
  44.   CITLISTBROWSER_VIEWPOSITION,
  45.   CITLISTBROWSER_SCROLLRASTER,
  46.   CITLISTBROWSER_HIERARCHICAL,
  47.   CITLISTBROWSER_SHOWIMAGE,
  48.   CITLISTBROWSER_HIDEIMAGE,
  49.   CITLISTBROWSER_LEAFIMAGE,
  50.   CITLISTBROWSER_EDITABLE,
  51.   CITLISTBROWSER_EDITNODE,
  52.   CITLISTBROWSER_EDITCOLUMN,
  53.   CITLISTBROWSER_EDITTAGS,
  54.   CITLISTBROWSER_CHECKIMAGE,
  55.   CITLISTBROWSER_UNCHECKEDIMAGE,
  56.   CITLISTBROWSER_MINNODESIZE,
  57.   CITLISTBROWSER_TITLECLICKABLE,
  58.   CITLISTBROWSER_MINVISIBLE,
  59.   CITLISTBROWSER_PERSISTSELECT,
  60.   CITLISTBROWSER_CURSORSELECT,
  61.   CITLISTBROWSER_FASTRENDER,
  62.   CITLISTBROWSER_WRAPTEXT,
  63.   CITLISTBROWSER_LAST
  64. };
  65.  
  66. class CITListBrowser:public CITGadget
  67. {
  68.   public:
  69.     CITListBrowser();
  70.     ~CITListBrowser();
  71.  
  72.     void Labels(char** labels);
  73.     void Labels(List* labels)
  74.            {setTag(CITLISTBROWSER_LABELS,LISTBROWSER_Labels,ULONG(labels));}
  75.     void Top(LONG top)
  76.            {setTag(CITLISTBROWSER_TOP,LISTBROWSER_Top,top);}
  77.     void MakeVisible(LONG mv)
  78.            {setTag(CITLISTBROWSER_MAKEVISIBLE,LISTBROWSER_MakeVisible,mv);}
  79.     void Spacing(WORD spacing)
  80.            {setTag(CITLISTBROWSER_SPACING,LISTBROWSER_Spacing,spacing);}
  81.     void Selected(LONG sel)
  82.            {setTag(CITLISTBROWSER_SELECTED,LISTBROWSER_Selected,sel);}
  83.     void MultiSelect(BOOL b = TRUE)
  84.            {setTag(CITLISTBROWSER_MULTISELECT,LISTBROWSER_MultiSelect,b);}
  85.     void ShowSelected(BOOL b = TRUE)
  86.            {setTag(CITLISTBROWSER_SHOWSELECTED,LISTBROWSER_ShowSelected,b);}
  87.     void VertSeparators(BOOL b = TRUE)
  88.            {setTag(CITLISTBROWSER_VERTSEPARATORS,LISTBROWSER_VertSeparators,b);}
  89.     void HorizSeparators(BOOL b = TRUE)
  90.            {setTag(CITLISTBROWSER_HORIZSEPARATORS,LISTBROWSER_HorizSeparators,b);}
  91.     void Borderless(BOOL b = TRUE)
  92.            {setTag(CITLISTBROWSER_BORDERLESS,LISTBROWSER_Borderless,b);}
  93.     void ColumnInfo(struct ColumnInfo* cInfo)
  94.            {setTag(CITLISTBROWSER_COLUMNINFO,LISTBROWSER_ColumnInfo,ULONG(cInfo));}
  95.     void ColumnTitles(BOOL b = TRUE)
  96.            {setTag(CITLISTBROWSER_COLUMNTITLES,LISTBROWSER_ColumnTitles,b);}
  97.     void AutoFit(BOOL b = TRUE)
  98.            {setTag(CITLISTBROWSER_AUTOFIT,LISTBROWSER_AutoFit,b);}
  99.     void VirtualWidth(WORD width)
  100.            {setTag(CITLISTBROWSER_VIRTUALWIDTH,LISTBROWSER_VirtualWidth,width);}
  101.     void Left(WORD left)
  102.            {setTag(CITLISTBROWSER_LEFT,LISTBROWSER_Left,left);}
  103.     void VerticalProp(BOOL b = TRUE)
  104.            {setTag(CITLISTBROWSER_VERTICALPROP,LISTBROWSER_VerticalProp,b);}
  105.     void HorizontalProp(BOOL b = TRUE)
  106.            {setTag(CITLISTBROWSER_HORIZONTALPROP,LISTBROWSER_HorizontalProp,b);}
  107.     void VPropTotal(WORD total)
  108.            {setTag(CITLISTBROWSER_VPROPTOTAL,LISTBROWSER_VPropTotal,total);}
  109.     void VPropTop(WORD top)
  110.            {setTag(CITLISTBROWSER_VPROPTOP,LISTBROWSER_VPropTop,top);}
  111.     void VPropVisible(WORD visible)
  112.            {setTag(CITLISTBROWSER_VPROPVISIBLE,LISTBROWSER_VPropVisible,visible);}
  113.     void HPropTotal(WORD total)
  114.            {setTag(CITLISTBROWSER_HPROPTOTAL,LISTBROWSER_HPropTotal,total);}
  115.     void HPropTop(WORD top)
  116.            {setTag(CITLISTBROWSER_HPROPTOP,LISTBROWSER_HPropTop,top);}
  117.     void HPropVisible(WORD visible)
  118.            {setTag(CITLISTBROWSER_HPROPVISIBLE,LISTBROWSER_HPropVisible,visible);}
  119.     void ViewPosition(ULONG pos)
  120.            {setTag(CITLISTBROWSER_VIEWPOSITION,LISTBROWSER_Position,pos);}
  121.     void ScrollRaster(BOOL b = TRUE)
  122.            {setTag(CITLISTBROWSER_SCROLLRASTER,LISTBROWSER_ScrollRaster,b);}
  123.     void Hierarchical(BOOL b = TRUE)
  124.            {setTag(CITLISTBROWSER_HIERARCHICAL,LISTBROWSER_Hierarchical,b);}
  125.     void ShowImage(struct Image* im)
  126.            {setTag(CITLISTBROWSER_SHOWIMAGE,LISTBROWSER_ShowImage,ULONG(im));}
  127.     void HideImage(struct Image* im)
  128.            {setTag(CITLISTBROWSER_HIDEIMAGE,LISTBROWSER_HideImage,ULONG(im));}
  129.     void LeafImage(struct Image* im)
  130.            {setTag(CITLISTBROWSER_LEAFIMAGE,LISTBROWSER_LeafImage,ULONG(im));}
  131.     void Editable(BOOL b = TRUE)
  132.            {setTag(CITLISTBROWSER_EDITABLE,LISTBROWSER_Editable,b);}
  133.     void EditNode(LONG node)
  134.            {setTag(CITLISTBROWSER_EDITNODE,LISTBROWSER_EditNode,node);}
  135.     void EditColumn(WORD col)
  136.            {setTag(CITLISTBROWSER_EDITCOLUMN,LISTBROWSER_EditColumn,col);}
  137.     void EditTags(struct TagList* list)
  138.            {setTag(CITLISTBROWSER_EDITTAGS,LISTBROWSER_EditTags,ULONG(list));}
  139.     void CheckImage(struct Image* im)
  140.            {setTag(CITLISTBROWSER_CHECKIMAGE,LISTBROWSER_CheckImage,ULONG(im));}
  141.     void UncheckedImage(struct Image* im)
  142.            {setTag(CITLISTBROWSER_UNCHECKEDIMAGE,LISTBROWSER_UncheckedImage,ULONG(im));}
  143.     void MinNodeSize(LONG nSize)
  144.            {setTag(CITLISTBROWSER_MINNODESIZE,LISTBROWSER_MinNodeSize,nSize);}
  145.     void TitleClickable(BOOL b = TRUE)
  146.            {setTag(CITLISTBROWSER_TITLECLICKABLE,LISTBROWSER_TitleClickable,b);}
  147.     void MinVisible(LONG mVisible)
  148.            {setTag(CITLISTBROWSER_MINVISIBLE,LISTBROWSER_MinVisible,mVisible);}
  149.     void PersistSelect(BOOL b = TRUE)
  150.            {setTag(CITLISTBROWSER_PERSISTSELECT,LISTBROWSER_PersistSelect,b);}
  151.     void CursorSelect(LONG cSelect)
  152.            {setTag(CITLISTBROWSER_CURSORSELECT,LISTBROWSER_CursorSelect,cSelect);}
  153.     void FastRender(BOOL b = TRUE)
  154.            {setTag(CITLISTBROWSER_FASTRENDER,LISTBROWSER_FastRender,b);}
  155.     void WrapText(BOOL b = TRUE)
  156.            {setTag(CITLISTBROWSER_WRAPTEXT,LISTBROWSER_WrapText,b);}
  157.  
  158.     LONG  Top()
  159.             {return getTag(LISTBROWSER_Top);}
  160.     Node* SelectedNode()
  161.             {return (Node*)getTag(LISTBROWSER_SelectedNode);}
  162.     LONG  Selected()
  163.             {return getTag(LISTBROWSER_Selected);}
  164.     LONG  NumSelected()
  165.             {return getTag(LISTBROWSER_NumSelected);}
  166.     ULONG RelEvent()
  167.             {return getTag(LISTBROWSER_RelEvent);}
  168.     WORD  MouseX()
  169.             {return getTag(LISTBROWSER_MouseX);}
  170.     WORD  MouseY()
  171.             {return getTag(LISTBROWSER_MouseY);}
  172.     WORD  RelColumn()
  173.             {return getTag(LISTBROWSER_RelColumn);}
  174.     LONG  TotalNodes()
  175.             {return getTag(LISTBROWSER_TotalNodes);}
  176.     LONG  CursorSelect()
  177.             {return getTag(LISTBROWSER_CursorSelect);}
  178.     Node* CursorNode()
  179.             {return (Node*)getTag(LISTBROWSER_CursorNode);}
  180.     LONG  TotalVisibleNodes()
  181.             {return getTag(LISTBROWSER_TotalVisibleNodes);}
  182.  
  183.   protected:
  184.     virtual BOOL    Create(CITWindow* CITWd,CITContainer* parent);
  185.     virtual Object* NewObjectA(TagItem* tags);
  186.  
  187.   private:
  188.     void  setTag(int index,ULONG attr,ULONG val);
  189.     ULONG getTag(ULONG attr);
  190.  
  191.     TagItem* listBrowserTag;
  192.     CITList  labelList;
  193. };
  194.  
  195. enum
  196. {
  197.    LISTBROWSERCLASS_FLAGBITUSED = GADGETCLASS_FLAGBITUSED
  198. };
  199.  
  200. #endif
  201.